#include <bits/stdc++.h>
using namespace std;
int s1=0,s2=0;
void mysrand(int x)
{
	s1=x%32768; s2=x/32768%32768;
}
int myrand()
{
	s1=(s1*2333+23333)%32768;
	s2=(s2*23333+2333)%32768;
	return s1^s2;
}
char s[]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_-+=[]\\';/.,{}|:\"<>? ";
char y[]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_-+=[]\\';/.,{}|:\"<>? ";
int ys[233],sy[233];
void shuffle()
{
	int n=strlen(s);
	for(int i=0;i<n;i++)
	swap(s[i],s[myrand()%(i+1)]);
	for(int i=0;i<128;i++) sy[i]=ys[i]=i;
	for(int i=0;i<n;i++) sy[(int)s[i]]=y[i];
	for(int i=0;i<n;i++) ys[(int)y[i]]=s[i];
}
string encode(string g)
{
	if((!s1)&&(!s2)) return g;
	for(unsigned i=0;i<g.size();i++)
	{
		if(g[i]<128&&g[i]>=0) g[i]=sy[(int)g[i]];
	}
	return "[enc]"+g;
}
string decode(string g)
{
	if(g.substr(0,5)!="[enc]") return g;
	g=g.substr(5);
	for(unsigned i=0;i<g.size();i++)
	{
		if(g[i]<128&&g[i]>=0) g[i]=ys[(int)g[i]];
	}
	return g;
}
int main()
{
	int pass; cin>>pass;
	fflush(stdin);
	mysrand(pass);
	shuffle();
	string sa,sb,sc;
	getline(cin,sa);
	sb=decode(sa);
	sc=encode(sa);
	cout<<sb<<"\n"<<sc<<"\n";
}

